package org.bronycorps.mlptss.manager.preferences;

import java.util.ArrayList;

public class ModConfiguration {

	public static class AnimatedBackgroundConfig {
		private ArrayList<BackgroundConfig> backgrounds = new ArrayList<ModConfiguration.BackgroundConfig>();
		private String name;

		public AnimatedBackgroundConfig() {
			super();
		}

		public ArrayList<BackgroundConfig> getBackgrounds() {
			return this.backgrounds;
		}

		public String getName() {
			return this.name;
		}

		public void setBackgrounds(ArrayList<BackgroundConfig> backgrounds) {
			this.backgrounds = backgrounds;
		}

		public void setName(String name) {
			this.name = name;
		}

	}

	public static class BackgroundConfig {
		private float offset;
		private String path = "";
		private float speed;

		public BackgroundConfig() {
			super();
		}

		public BackgroundConfig(String path, float offset, float speed) {
			super();
			this.offset = offset;
			this.path = path;
			this.speed = speed;
		}

		public float getOffset() {
			return this.offset;
		}

		public String getPath() {
			return this.path;
		}

		public float getSpeed() {
			return this.speed;
		}

		public void setOffset(float offset) {
			this.offset = offset;
		}

		public void setPath(String path) {
			this.path = path;
		}

		public void setSpeed(float speed) {
			this.speed = speed;
		}

	}

	public static class HUDConfig {
		private String fontFile;
		private String hudLifeAtlas;
		private String hudMidWallFile;
		private Integer hudMidWallYOffset;

		public HUDConfig() {
			super();
		}

		public String getFontFile() {
			return this.fontFile;
		}

		public String getHudLifeAtlas() {
			return this.hudLifeAtlas;
		}

		public String getHudMidWallFile() {
			return this.hudMidWallFile;
		}

		public Integer getHudMidWallYOffset() {
			return this.hudMidWallYOffset;
		}

		public void setFontFile(String fontFile) {
			this.fontFile = fontFile;
		}

		public void setHudLifeAtlas(String hudLifeAtlas) {
			this.hudLifeAtlas = hudLifeAtlas;
		}

		public void setHudMidWallFile(String hudMidWallFile) {
			this.hudMidWallFile = hudMidWallFile;
		}

		public void setHudMidWallYOffset(Integer hudMidWallYOffset) {
			this.hudMidWallYOffset = hudMidWallYOffset;
		}

	}

	public static class MenuConfig {
		private String background = "";
		private String characterNameFont = "";
		private String defaultBackground = "";
		private String gameOverAtlas = "";
		private String menuItems = "";
		private String skin = "";

		public MenuConfig() {
			super();
		}

		public String getBackground() {
			return this.background;
		}

		public String getCharacterNameFont() {
			return this.characterNameFont;
		}

		public String getDefaultBackground() {
			return this.defaultBackground;
		}

		public String getGameOverAtlas() {
			return this.gameOverAtlas;
		}

		public String getMenuItems() {
			return this.menuItems;
		}

		public String getSkin() {
			return this.skin;
		}

		public void setBackground(String background) {
			this.background = background;
		}

		public void setCharacterNameFont(String characterNameFont) {
			this.characterNameFont = characterNameFont;
		}

		public void setDefaultBackground(String defaultBackground) {
			this.defaultBackground = defaultBackground;
		}

		public void setGameOverAtlas(String gameOverAtlas) {
			this.gameOverAtlas = gameOverAtlas;
		}

		public void setMenuItems(String menuItems) {
			this.menuItems = menuItems;
		}

		public void setSkin(String skin) {
			this.skin = skin;
		}

	}

	private AssetsConfiguration assetsConfiguration;

	private ArrayList<AnimatedBackgroundConfig> backgrounds = new ArrayList<ModConfiguration.AnimatedBackgroundConfig>();

	private String characterPath;
	private ArrayList<EpisodeConfiguration> episodes = new ArrayList<EpisodeConfiguration>();
	private HUDConfig hudConfig;
	private String introScreen;
	private MenuConfig menuConfig;

	public ModConfiguration() {
		super();
	}

	public AssetsConfiguration getAssetsConfiguration() {
		return this.assetsConfiguration;
	}

	public ArrayList<AnimatedBackgroundConfig> getBackgrounds() {
		return this.backgrounds;
	}

	public String getCharacterPath() {
		return this.characterPath;
	}

	public ArrayList<EpisodeConfiguration> getEpisodes() {
		return this.episodes;
	}

	public String getFontFile() {
		return this.hudConfig.fontFile;
	}

	public String getHudLifeAtlas() {
		return this.hudConfig.hudLifeAtlas;
	}

	public String getHudMidWallFile() {
		return this.hudConfig.hudMidWallFile;
	}

	public Integer getHudMidWallYOffset() {
		return this.hudConfig.hudMidWallYOffset;
	}

	public String getIntroScreen() {
		return this.introScreen;
	}

	public MenuConfig getMenuConfig() {
		return this.menuConfig;
	}

	public void setBackgrounds(ArrayList<AnimatedBackgroundConfig> backgrounds) {
		this.backgrounds = backgrounds;
	}

	public void setEpisodes(ArrayList<EpisodeConfiguration> episodes) {
		this.episodes = episodes;
	}

	public void setMenuConfig(MenuConfig menuConfig) {
		this.menuConfig = menuConfig;
	}
}
